package UI;

import S_Algorithm.DiskManage;
import java.awt.Color;
import java.awt.Font;
import javax.swing.JPanel;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.StandardChartTheme;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
import org.jfree.data.xy.XYDataset;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
import org.jfree.ui.RectangleInsets;

public class LineCharts  extends JPanel{
 // 生成显示图表的面板
 public static JPanel createDemoLine(int[] a,String method) {
     
   
//          int i;  
//       int []array =new int[100];  
//       for(i=0;i<100;i++)
//            array[i]=i;  
//       String method = "FCFS";
  JFreeChart jfreechart = createChart(createDataset(a,method));
  return new ChartPanel(jfreechart);
 }

 // 生成图表主对象JFreeChart
// public static JFreeChart createChart(DefaultCategoryDataset linedataset) {
//  //定义图表对象
//  JFreeChart chart = ChartFactory.createLineChart("磁盘调度", // chart title
//    "“磁道号”序列", // domain axis label
//    "磁道号", // range axis label
//    linedataset, // data
//    PlotOrientation.VERTICAL, // orientation
//    true, // include legend
//    true, // tooltips
//    false // urls
//    );
//  CategoryPlot plot = chart.getCategoryPlot();
//  
//  plot.setNoDataMessage("没有数据");
//  
//  
//  // customise the range axis...
//  NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
//  rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
//  rangeAxis.setAutoRangeIncludesZero(true);
//  rangeAxis.setUpperMargin(0.20);
//  rangeAxis.setLabelAngle(Math.PI / 2.0);
//
//  return chart;
// }
 private static JFreeChart createChart(XYDataset xydataset) {
         JFreeChart jfreechart = ChartFactory.createXYLineChart
        ("磁道调度模拟图", 
        "“磁道号”序列", 
        "磁道号", 
        xydataset, 
        PlotOrientation.VERTICAL, 
        true, 
        true, 
        false);
        jfreechart.setBackgroundPaint(Color.white);
        XYPlot xyplot = (XYPlot)jfreechart.getPlot(); //获得 plot：XYPlot！！
        xyplot.setBackgroundPaint(Color.lightGray); //设定图表数据显示部分背景色
        xyplot.setAxisOffset(new RectangleInsets(5D, 5D, 5D, 5D)); //设定坐标轴与图表数据显示部分距离
        xyplot.setDomainGridlinePaint(Color.white); //网格线颜色
        xyplot.setRangeGridlinePaint(Color.white);
        //获得 renderer 注意这里是XYLineAndShapeRenderer ！！
        xyplot.setNoDataMessage("没有数据");
        XYLineAndShapeRenderer xylineandshaperenderer = (XYLineAndShapeRenderer)xyplot.getRenderer();
        xylineandshaperenderer.setShapesVisible(true); //数据点可见
        xylineandshaperenderer.setShapesFilled(true); //数据点被填充即不是空心点
        NumberAxis numberaxis = (NumberAxis)xyplot.getRangeAxis();
        numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
        return jfreechart;
    }

 //生成数据
// public static DefaultCategoryDataset createDataset() {
//  DefaultCategoryDataset linedataset = new DefaultCategoryDataset();
//  //  各曲线名称
//  String series1 = "先来先服务算法（FCFS）";
////  String series2 = "彩电";
////  String series3 = "洗衣机";
//
//  //    横轴名称(列名称)
//  String str = "";
//  String type1 = "1月";
//  String type2 = "2月";
//  String type3 = "3月";
//  
//   String type4 = " ff";
//    String type5 = " ff";
//     String type6 = "ff ";
//      String type7 = " ff";
//      String type8 = " ff";
// 
//  linedataset.addValue(0.0, series1, type1);
//  linedataset.addValue(4.2, series1, type2);
//  linedataset.addValue(3.9, series1, type3);
//  
//  linedataset.addValue(5.1, series1, type4);
//  linedataset.addValue(7.3, series1, type5);
//  linedataset.addValue(9.1, series1, type6);
//  linedataset.addValue(8.5, series1, type7);
//  linedataset.addValue(10.10, series1, type8);
//
//  //  linedataset.addValue(1.0, series2, type1);
////  linedataset.addValue(5.2, series2, type2);
////  linedataset.addValue(7.9, series2, type3);
//
////  linedataset.addValue(2.0, series3, type1);
////  linedataset.addValue(9.2, series3, type2);
////  linedataset.addValue(8.9, series3, type3);
//  
//  
//  
//   StandardChartTheme standardChartTheme=new StandardChartTheme("CN");  
//       //设置标题字体  
//       standardChartTheme.setExtraLargeFont(new Font("隶书",Font.BOLD,20));  
//       //设置图例的字体  
//       standardChartTheme.setRegularFont(new Font("宋书",Font.PLAIN,15));  
//       //设置轴向的字体  
//       standardChartTheme.setLargeFont(new Font("宋书",Font.PLAIN,15));  
//       //应用主题样式  
//       ChartFactory.setChartTheme(standardChartTheme);  
//
//  return linedataset;
// }
 private static XYDataset createDataset(int array[],String method) {
//        TimeSeries timeseries = new TimeSeries("L&G European Index Trust",
//                org.jfree.data.time.Month.class);
    
     XYSeries xyseries = new XYSeries(method); //先产生XYSeries 对象
     for(int i=1;i<=10;i++)
         xyseries.add(i, array[i]);
//         xyseries.add(1.0D, 1.0D);
//        xyseries.add(2D, 4D);
//        xyseries.add(3D, 3D);
//        xyseries.add(4D, 5D);
//        xyseries.add(5D, 5D);
//        xyseries.add(6D, 7D);
//        xyseries.add(7D, 7D);
//        xyseries.add(8D, 8D);
        
//        XYSeries xyseries1 = new XYSeries("Second");
//        xyseries1.add(1.0D, 5D);
//        xyseries1.add(2D, 7D);
//        xyseries1.add(3D, 6D);
//        xyseries1.add(4D, 8D);
//        xyseries1.add(5D, 4D);
//        xyseries1.add(6D, 4D);
//        xyseries1.add(7D, 2D);
//        xyseries1.add(8D, 1.0D);
//        
//        XYSeries xyseries2 = new XYSeries("Third");
//        xyseries2.add(3D, 4D);
//        xyseries2.add(4D, 3D);
//        xyseries2.add(5D, 2D);
//        xyseries2.add(6D, 3D);
//        xyseries2.add(7D, 6D);
//        xyseries2.add(8D, 3D);
//        xyseries2.add(9D, 4D);
//        xyseries2.add(10D, 3D);
        
        XYSeriesCollection xyseriescollection = new XYSeriesCollection(); //再用XYSeriesCollection添加入XYSeries 对象
        xyseriescollection.addSeries(xyseries);
//        xyseriescollection.addSeries(xyseries1);
//        xyseriescollection.addSeries(xyseries2);
        StandardChartTheme standardChartTheme=new StandardChartTheme("CN");  
       //设置标题字体  
       standardChartTheme.setExtraLargeFont(new Font("隶书",Font.BOLD,20));  
       //设置图例的字体  
       standardChartTheme.setRegularFont(new Font("宋书",Font.PLAIN,15));  
       //设置轴向的字体  
       standardChartTheme.setLargeFont(new Font("宋书",Font.PLAIN,15));  
       //应用主题样式  
       ChartFactory.setChartTheme(standardChartTheme);
       
        return xyseriescollection;
    }

}